package com.hyt.it.ogt.kq.common.gov.constant.examsys.gce;

import com.hyt.it.ogt.kq.common.config.exception.KqException;
import lombok.Getter;

/**
 * <p>
 * GCE考试过程状态枚举
 * </p>
 *
 * @author huangyh
 * @since 2021-08-27
 */
@Getter
public enum GCEStateTypeEnum {

    /**
     * 下载考务包
     */
    ROOM_PACKAGE("RoomData", "下载考务包"),
    /**
     * 下载试卷
     */
    PAPER("RoomPaper", "下载试卷"),
    /**
     * 下载授权码
     */
    AUTHORIZATION_CODE("RoomPaperCode", "下载授权码"),
    /**
     * 考试开始
     */
    STARTED("RoomStartExam", "考试开始"),
    /**
     * 考试结束
     */
    ENDED("RoomEndExam", "考试结束"),
    /**
     * 考试完成
     */
    FINISHED("RoomFinishExamTime", "考试完成"),
    /**
     * 上传考试结果
     */
    UPLOADED("RoomUploadData", "上传考试结果"),
    /**
     * 导出考试结果
     */
    EXPORTED("RoomImportData", "导出考试结果"),

    ;

    private final String type;
    private final String remark;

    GCEStateTypeEnum(String type, String remark) {
        this.type = type;
        this.remark = remark;
    }

    /**
     * 获取考试过程状态
     * @param type 类型
     * @return 考试过程状态
     */
    public static GCEStateTypeEnum getByType(String type) throws KqException {
        for (GCEStateTypeEnum value : values()) {
            if (value.getType().equals(type)) {
                return value;
            }
        }
        //获取考试过程状态不存在
        throw new KqException(-1, "获取考试过程状态不存在");
    }

}
